package org.example.javassistPro;

import org.example.Base;

import java.lang.instrument.Instrumentation;
import java.lang.instrument.UnmodifiableClassException;

/**
 * @author : yuhuan.wu
 * @date : 2021/11/1
 * @description :
 */
public class MyBizAgentMain {

    public static void agentmain(String agentArgs, Instrumentation inst) throws UnmodifiableClassException, ClassNotFoundException {
        System.out.println("---agent called---");
        inst.addTransformer(new TestTransformer(),true);//添加类文件转换器，第二个参数必须设置为true，表示可以重新转换类文件

//        System.out.println(agentArgs);//vm.loadAgent传入的第二个字符串

        //方法1
//        inst.retransformClasses(Class.forName("com.cc.mathAndStructure.unUserfulTest.Base"));
//        inst.retransformClasses(Class.forName(agentArgs));
        inst.retransformClasses(Base.class);

        //方法2
//        Class[] classes = inst.getAllLoadedClasses();
//        for (int i = 0; i < classes.length; i++) {
//            if ("com.cc.mathAndStructure.unUserfulTest.Base".equals(classes[i].getName())) {
//                System.out.println("----重新加载MyBizMain开始----");
//                inst.retransformClasses(classes[i]);
//                System.out.println("----重新加载MyBizMain完毕----");
//                break;
//            }
//        }


    }

}
